package com.fancy.recommendation.dto.response;

import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 推荐结果响应VO
 *
 * @author fancy
 */
@Data
public class RecommendationResponseVO {

    /**
     * 推荐ID
     */
    private Long recommendationId;

    /**
     * 推荐类型
     */
    private String recType;

    /**
     * 目标ID
     */
    private Long targetId;

    /**
     * 目标类型
     */
    private String targetType;

    /**
     * 推荐分数
     */
    private BigDecimal score;

    /**
     * 推荐理由
     */
    private String reason;

    /**
     * 算法类型
     */
    private String algorithm;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 过期时间
     */
    private LocalDateTime expireTime;

    /**
     * 目标详细信息（从其他服务获取）
     */
    private Object targetInfo;

    /**
     * 推荐项目列表
     */
    @Data
    public static class RecommendationListVO {

        /**
         * 推荐总数
         */
        private Integer totalCount;

        /**
         * 推荐算法
         */
        private String algorithm;

        /**
         * 生成时间
         */
        private LocalDateTime generateTime;

        /**
         * 推荐项列表
         */
        private List<RecommendationResponseVO> recommendations;
    }
}
